﻿jQuery.fn.mascaraData = function () {
    $(this).mask("99/99/9999");
};
jQuery.fn.mostrarValidation = function (mensagem) {
    var nomeCampo = $(this)[0].name.replace(".", "_");
    $('span.field-validation-valid').each(function () {
        if ($(this).attr('data-valmsg-for') == nomeCampo) {
            $(this).text(mensagem);
            $(this).show();
            $(this).addClass("error");
            return;
        }
    });
};

jQuery.fn.ocultarValidation = function () {
    var nomeCampo = $(this)[0].name.replace(".", "_");
    $('span.field-validation-valid').each(function () {
        if ($(this).attr('data-valmsg-for') == nomeCampo) {
            $(this).hide();
            return;
        }
    });
};

jQuery.fn.validarIndexDropDownList = validarIndexDropDownList;

function validarIndexDropDownList() {
    if ($(this).val() == 0) {
        $(this).mostrarValidation("Selecione uma opção para este campo");
        $(this).change(validarIndexDropDownList);
        return false;
    }
    else {
        $(this).ocultarValidation();
        return true;
    }
};

jQuery.fn.validarCampoRequerido = function () {
    if ($(this).val() == '') {
        $(this).mostrarValidation("O campo é obrigatório");
        return false;
    }
    else {
        $(this).ocultarValidation();
        return true;
    }
};

jQuery.fn.validarData = function () {
    $valor = $(this).val();
    if ($valor) {
        $erro = "";
        var expReg = /^((0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/[1-2][0-9]\d{2})$/;
        if ($valor.match(expReg)) {
            var $dia = parseFloat($valor.substring(0, 2));
            var $mes = parseFloat($valor.substring(3, 5));
            var $ano = parseFloat($valor.substring(6, 10));

            if (($mes == 4 && $dia > 30) || ($mes == 6 && $dia > 30) || ($mes == 9 && $dia > 30) || ($mes == 11 && $dia > 30)) {
                $erro = "Data inválida. O mês especificado na data " + $valor + " contém 30 dias.";
            } else {
                if ($ano % 4 != 0 && $mes == 2 && $dia > 28) {
                    $erro = "Data inválida. O mês especificado na data " + $valor + " contém 28 dias.";
                } else {
                    if ($ano % 4 == 0 && $mes == 2 && $dia > 29) {
                        $erro = "Data inválida. O mês especificado na data " + $valor + " contém 29 dias.";
                    }
                }
            }
            if ($ano < 1753)  { //Data mínima do SQL
                $erro = "Data inválida. O valor não pode ser menor que 01/01/1753";
            }
        } else {
            $erro = "Formato de Data para " + $valor + " é inválido";
        }
        if ($erro) {
            $(this).mostrarValidation($erro);
            return false;

        } else {
            $(this).ocultarValidation();
            return true;
        }
    } else {
        $(this).ocultarValidation();
        return true;
    }
};

jQuery.fn.compararSenhas = function (senhaComparar) {
    if ($(this).val() == senhaComparar) {
        $(this).ocultarValidation();
        return true;
    }
    else {
        $(this).mostrarValidation("As senhas não conferem");
        return false;
    }
};

jQuery.fn.validarCaracteres = function (minimoCaracteres) {
    if ($(this).val().length >= minimoCaracteres) {
        $(this).ocultarValidation();
        return true;
    }
    else {
        $(this).mostrarValidation("O campo deve ter no mínimo " + minimoCaracteres + " caracteres.");
        return false;
    }
};
